Method and system for engine control

ABSTRACT

A method for comprehensive integrated control of an internal combustion engine, such as a compression-ignition engine, utilizing an electronic control module (20) is disclosed. The control strategy integrates various functions of engine control including an acceleration balance test for the engine cylinders, a fuel economy vehicle speed limit adder, a fueling limit for high altitude vehicle operation, throttle logic, a data-hub for operation trending and vehicle component lifing analyses, a gear ratio torque limit, an air temperature based torque limit, enhanced cooling fan control, and an idle shutdown strategy based on ambient air temperature.

CROSS REFERENCE TO RELATED APPLICATION

This application is a continuation-in-part of currently pending U.S.patent application Ser. No. 08/243,103 filed May 16, 1994, titled"Method and System for Engine Control", the disclosure of which ishereby incorporated by reference in its entirety.

TECHNICAL FIELD

The present invention relates to a method and system for controlling aninternal combustion engine.

BACKGROUND ART

In the control of diesel engines, the conventional practice utilizeselectronic control units having volatile and nonvolatile memory, inputand output driver circuitry, and a processor capable of executing astored instruction set, to control the various functions of the engineand its associated systems. A particular electronic control unitcommunicates with numerous sensors, actuators, and other electroniccontrol units necessary to control various functions, which may includevarious aspects of fuel delivery, transmission control, or myriadothers.

Early complex systems and subsystems which performed critical functionsrequired separate control units which could promptly respond to dynamicvehicle situations and initiate appropriate actions. For example, avehicle may have employed a brake controller, a cruise control module, acooling fan controller, an engine controller, and a transmissioncontroller, such that each vehicle system or subsystem had its ownstand-alone controller. These controllers were either electronic controlunits or electronic circuits which may have had little or nocommunication among themselves or with a master controller. Thus, thevehicle was operated as a distributed control system, which often madeit difficult to optimize overall vehicle performance by coordinatingcontrol of the various systems and subsystems.

As control systems became more sophisticated, the various distributedcontrollers were connected to communicate status information andcoordinate actions. However, inter-controller communication delays wereoften unacceptable for critical control tasks, thus requiringindependent processors or circuitry for those tasks. This expanded theoverall capabilities of the control system and was often necessary tomeet increasing consumer demands as well as more stringent emissioncontrol standards.

To meet these stricter standards, it has been necessary to expand thecapabilities of the engine control system to more accurately control theengine operation. The complexity of the resulting control systems hasoften resulted in difficulty in the manufacturing, assembling, andservicing of vehicles. Manufacturers have attempted to decrease partproliferation, while increasing the accuracy of control, by combiningincreasingly more control functions into a single controller.

Advancements in microprocessor technology have facilitated the evolutionof engine control systems. These systems began by implementingrelatively simple control functions with mechanical apparatus, andprogressed to more involved control schemes with dedicated controllers,before having matured as complex control strategies realized by acomprehensive engine controller. Many engine control systems found inthe prior art address only a single subsystem control strategy and failto capitalize on the advantages afforded by these microprocessoradvancements. Another difficulty encountered by traditional, distributedengine control systems is the inability to protect the engine or enginecomponents from system failures. Certain engine components, operatedunder extreme operating conditions, may fail.

The desire to provide application specific vehicles at a competitiveprice has led to the availability of a number of customer options whichmay include some of the systems already noted, such as vehicle speedcontrol, engine speed control, or engine torque control. This in turnhas lead to a large number of possible subsystem combinations, thusincreasing the costs associated with manufacturing and assembly as wellas the cost of field service due to the large number of spare componentswhich must be manufactured and stored.

It is desirable to have an electronic control unit capable ofintegrating the control of various engine functions and associatedvehicle systems, thus eliminating inter-controller communication delaysand harmonizing engine control with other vehicle subsystems. Anadditional benefit accrues from replacing independent stand-alonecontrollers with a comprehensive controller, so as to reduce partproliferation in the vehicle manufacturing, assembly, and serviceenvironments, leading to an associated reduction in the cost of thesefunctions.

It is also desirable in optimizing overall vehicle performance, to havean electronic control unit which coordinates control of the engine withcontrol of the transmission for smoother, more efficient shifting of thetransmission. It is desirable to provide for throttle logic, and toprovide for cylinder balancing to determine relative power contributionfrom each cylinder.

Due to increasing cost of fuel, it is further desirable to provide acontroller which encourages certain driving techniques which enhancefuel economy. For example, it is desirable to provide an incentive tolimit engine idling while the vehicle is stationary so as to reduceaverage noise levels and to reduce fuel consumption. It is furtherdesirable to encourage the use of cruise control to minimizetransmission shifting and increase overall fuel economy wheneverpossible.

It is also desirable to provide a controller which can control theengine in a manner which protects engine components during extremeoperating conditions. For example, if a turbocharged vehicle is operatedat high altitudes, the turbocharger will spin faster than a similarturbocharger operated at lower altitudes, and can be damaged.

SUMMARY OF THE INVENTION

It is therefore an object of the present invention to provide anintegrated engine controller capable of performing a balance test fordetermining cylinder contributions.

It is a further object of the present invention to provide an integratedengine controller capable of controlling fuel delivery to maximize fueleconomy via driver incentives, and capable of protecting enginecomponents in the presence of certain operating conditions.

It is an additional object of the present invention to provide anintegrated engine controller capable of performing throttle logic, andcapable of controlling the transmission in conjunction with the engine.

Another object of the present invention is to provide an enginecontroller which limits engine idling time while the vehicle isstationary to reduce unnecessary fuel consumption and noise.

Yet another object of the present invention is to provide a enginecontroller which limits engine idling based on ambient air temperatureso as to permit engine idling under conditions justifying use of vehicleheating or cooling systems.

A further object of the present invention is to provide an enginecontroller which estimates ambient air temperature so that an additionaltemperature sensor is not required.

Still further, it is an object of the present invention to provide anintegrated engine controller capable of determining service intervalsand performing trend analyses.

In carrying out the above objects and other objects and features of thepresent invention, a method, for use in a vehicle including an internalcombustion engine having a plurality of cylinders, each cylinder havingan associated fuel injector for dispensing fuel to the cylinder, isprovided for balancing the fuel injectors. The method comprisesoperating the engine at a predetermined idle speed so as to permit theengine to stabilize, and cutting off the fuel delivered by the fuelinjectors to at least one of the cylinders. The method also comprisesmeasuring the acceleration RPM of the engine with the at least onecylinder cut out, and modifying the fuel delivered from the fuelinjectors based on the measured acceleration RPM so as to balance thepower output of each cylinder.

The present invention also contemplates a method, for use in a vehicleincluding an internal combustion engine, for improving fuel economy. Themethod comprises determining a fuel economy, determining a speed adderbased on the determined fuel economy, and modifying the maximum vehiclespeed available to the vehicle operator utilizing the speed adder.

Still further, the present invention also provides a method, for use ina vehicle including an internal combustion engine having a turbocharger,for preventing damage to the turbocharger from turbocharging surging andoverspeed during vehicle operation at certain barometric pressures. Themethod comprises determining a torque modifier based on the barometricpressure associated with the altitude at which the vehicle is beingoperated, determining a limit torque based on the torque modifier, andlimiting the engine turbo speed by limiting fuel delivery to the engine.

The present invention further contemplates a system, for use with avehicle including an internal combustion engine and an electroniccontrol module for controlling the engine, for sampling vehicularoperating information utilizing a plurality of sensors and maintainingthe sampled information in a plurality of pages. The system cooperateswith the electronic control module to maintain a plurality of trendspages in the system, each page including a predetermined maximum numberof samples, the trends pages providing an indication of a particularvehicle operating condition.

In still further carrying out the above objects and other objects andfeatures of the present invention, a method for throttle logic isprovided for use with a vehicle including an internal combustion enginecontrolled by an electronic control module and a vehicleoperator-controlled throttle for controlling the amount of fueldelivered to the engine. The method comprises obtaining an impulsefiltered throttle position offset by filtering the raw value of athrottle position sensor output, determining a smoothed throttleposition offset based on the impulse filtered throttle position offsetand a variable filter constant, and determining a computed throttleposition offset based on a throttle position hysteresis and the smoothedoffset.

The present invention also provides a method, for use in a vehicleincluding an internal combustion engine having a plurality of cylindersand a like plurality of pistons reciprocating in the cylinders, forpreventing damage to the cylinders and pistons during vehicle operation.The method comprises determining the temperature of air inlet to theengine during combustion, and determining the operating speed of theinternal combustion engine. The method also comprises determining anengine torque limit based on the air inlet temperature and the enginespeed, and limiting the torque of the engine to the torque limit.

Additionally, there is provided a method, for use in a vehicle having adrivetrain including an internal combustion engine and a transmissioncoupled thereto, of engine torque control for preventing damage to thetransmission. The method comprises determining a virtual gear ratio, andlimiting the torque produced by the engine based on the value of thevirtual gear ratio.

Methods are also provided for improved fan control and improved idleshutdown. Systems for carrying out the methods are also provided.

The above objects and other objects, features, and advantages of thepresent invention will be readily appreciated by one of ordinary skillin the art from the following detailed description of the best mode forcarrying out the invention when taken in connection with theaccompanying drawings.

The above objects and other objects, features, and advantages of thepresent invention will be readily appreciated by one of ordinary skillin the art from the following detailed description of the best mode forcarrying out the invention when taken in connection with theaccompanying drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram of an integrated control system for aninternal combustion engine in accordance with the present invention;

FIG. 2 is a flow chart detailing the steps for cylinder balance testingaccording to the present invention;

FIG. 3 is a flow chart detailing the steps for fuel economy speed limitaddition according to the present invention;

FIG. 4 is a graphical representation of the high altitude torquereduction as a function of barometric pressure and engine speedaccording to the present invention;

FIG. 5 is a flow chart detailing the throttle logic according to thepresent invention;

FIG. 6 is a flow chart detailing the gear ratio torque limit strategy ofthe present invention;

FIG. 7 is a flow chart illustrating a system and method for engine idleshutdown based on ambient air temperature according to the presentinvention;

FIG. 8 is a graphical representation of a system and method for ambientair temperature estimation according to the present invention; and

FIG. 9 is a graphical representation of absolute torque versus enginespeed for use with the air temperature torque limit according to thepresent invention.

BEST MODES FOR CARRYING OUT THE INVENTION

Referring now to FIG. 1, there is shown an electronic control module(ECM) 20 in communication with typical engine componentry, showngenerally by reference numeral 22, and a user-interface 34. As shown,the ECM 20 includes a microprocessor 24 having volatile random-accessmemory (RAM) 26, and nonvolatile read-only memory (ROM) 28. Of course,the ECM 20 may contain other types of memory instead of, or in additionto, RAM 26 and ROM 28, such as flash EPROM or EEPROM memories, as iswell known in the art.

The ROM 28, or other nonvolatile memory, may contain instructions, whichare executed to perform various control and information functions, aswell as data tables, which contain calibration values and parameterscharacterizing normal engine operation. Microprocessor 24 impartscontrol signals to, and receives signals from, input and output (I/O)drivers 32. The I/O drivers 32 are in communication with the enginecomponentry 22 and serve to protect the controller from hostileelectrical impulses while providing the signals and power necessary forengine control according to the present invention. The ECM componentrydetailed above is interconnected by data, address and control buses. Itshould be noted that there are a variety of other possible controlschemes which include various combinations of microprocessors andelectric or electronic circuits which could perform the same function.

With continuing reference to FIG. 1, engine componentry 22 includes aplurality of electronic unit injectors (EUI) 40, each associated with aparticular engine cylinder; and a plurality of sensors 42 for indicatingvarious engine operating conditions, such as coolant temperature,ambient air temperature, intake manifold air temperature, inlet airtemperature, engine oil temperature, fuel temperature, inner coolertemperature, throttle position, intake manifold pressure, fuel pressure,oil pressure, coolant pressure, cylinder position, and cylindersequencing, to name a few. Engine componentry 22 also includes actuators44 which may include solenoids, variable valves, indicator lights,motors, and/or generators. It should be appreciated that the ECM 20 mayalso be in communication with other vehicle componentry andmicroprocessors which control associated vehicle systems, such as thebrakes, the transmission, a vehicle management system or a fleetmanagement radio transponder.

The user-interface, or data-hub, 34 is used to store user-selectedmonitoring parameters and associated values for those parameters, and todetermine service intervals and perform trend analyses. User selectedparameters may include adjustable limits, such as desired engine oillife. Engine historical information may include diagnostic informationwhich is used to assist personnel performing routine maintenance, ortroubleshooting malfunctions, as well as engine and vehicle operationdata, which may be analyzed to evaluate vehicle operator performance inaddition to vehicle performance. The user-interface 34 also preferablyperforms component lifing and trend analyses, as described in greaterdetail below. It should be appreciated that although FIG. 1 illustratesthe user-interface as being external to the ECM 20, certain operationsperformed by the user-interface could, of course, also be performed bythe ECM 20.

The electronic control module 20 executes software so as to implementthe various features of the present invention. In describing thesefeatures, equations will be provided and reference will be made tovariables utilized by the ECM in executing the software. It should benoted that equation variables shown in lower-case italics arecalibration variables, whereas equation variables shown in SMALL CAPSrepresent function variables, whose values vary and are based on, forexample, operating conditions such as intake manifold pressure or enginespeed.

Referring now to FIG. 2, there is shown a flow chart detailing the stepsfor an injector balance test according to the present invention. In thepreferred embodiment, the ECM 20 attempts to balance the injectors 40 sothat power delivery is approximately equal, by performing anacceleration test to determine the relative power from each injector. Atstep 50, the ECM determines whether the acceleration balance test is tobe started. In the preferred embodiment, the test is activated if aninjector balance message is received by the ECM 20 from theuser-interface 34 and either the vehicle speed is zero or the vehiclespeed sensor (VSS) is not configured and the balance flag (BALENB) isset. The BALENB flag is set during calibration. The acceleration balancetest can be terminated in a number of ways. Preferably, the test isterminated when the test is complete, or when the ECM 20 receives aclear message from the user-interface 34. Additionally, the test isterminated when the ignition is turned to the "off" position, or if thevehicle speed is non-zero.

With continuing reference to FIG. 2, once the balance test is activatedat step 50, a test sequence is entered at step 52 which includes aninitializing step during which the idle speed is set to the value ofBALSTR, a variable representing the balance start ramp RPM (the engineRPM at which the test starts). BALSTR preferably has a range of 0-2500RPM and defaults to 1000 RPM. Additionally, requested torque is set tozero and the test cylinder variable (CYL_(TST)) is set to a value of `1`at step 52.

At step 54, the engine is allowed to stabilize prior to commencement ofthe actual test. During the stabilizing period, the test cylinder is cutout of the fueling scheme. Control flow proceeds to step 56 when thestabilizing time exceeds or is equal to the settling time variable(BALTIM), which has a range of 0-30 seconds and a default value of 2seconds.

As shown in FIG. 2, once the engine has stabilized, at step 56 theacceleration RPM with the test cylinder cut out is measured, startingwith the first cylinder cut out. To do this, the fueling control signal,which could be a pulse width signal or derived from torque, for theremaining injectors, is set to the value of BALFPW, and the beginning ofinjection (BOI) time for the remaining injectors is set to BALBOI,wherein BALFPW is the balance pulse width variable, which has a range of0°-30° and a default value of 13° (of crankshaft rotation), and whereinBALBOI is the balance beginning of fuel injection variable, which has arange of 0°-30° and a default value of 10°.

Control flow preferably proceeds to step 58 of FIG. 2 when the number ofactual engine revolutions since the pulse width and injection time wereset, equals or exceeds BALREV, the variable representing the balance endramp revolutions, which has a range of 0-100 revolutions with a 1revolution resolution and a default value of 8 revolutions. The value ofBALREV is set so as to ensure the occurrence of a certain number offirings for the test. As is known, in a four stroke 8-cylinder engine,four cylinders fire for each crankshaft revolution, whereas all eightcylinders are fired each revolution in a two stroke 8-cylinder engine.With BALREV and BALFPW set to the indicated defaults, an increase inengine speed of approximately 500 RPM will be realized during the test.At this point (revs≧BALREV), the engine speed is stored in memory forthe cut out injector.

At step 58 of FIG. 2, the ECM determines whether or not an additionalinjector needs to be tested or whether the injector balance test iscomplete. If the value of CYL_(TST) exceeds or equals the number ofengine cylinders (ZNCYLH), no additional injectors need to be tested andcontrol flow skips to step 62, wherein adjustment factors aredetermined. If, however, additional injectors are to be tested, thevalue of CYL_(TST) is incremented at step 60, and control flow returnsto step 54 so that steps 56 and 58 can be repeated for each injector tobe tested.

With continuing reference to FIG. 2, at step 62 adjustment factors arecalculated after all the injectors to be tested (i.e. cut out) have beentested. In a preferred embodiment, this entails first determining anaverage RPM (RPM_(AVG)) for the tested injectors according to: ##EQU1##wherein Σ(RPM) is the sum of all RPMs measured at the conclusion of step56. Next, an adjustment RPM ratio (RPM_(ADJX)) is determined for eachcylinder according to: ##EQU2## for x=1 to 8 for an eight cylinderengine, wherein RPM_(x) is the RPM measured at the conclusion of step 56for the particular cylinder. The adjustment factors (FCT_(ADJX)), whichwill ultimately modify the final injector pulse width, are determinedaccording to:

    FCT.sub.ADJX =(RPMD.sub.ADJX -1)*(ZNCYLH-1)*BALGAN

wherein BALGAN is the balance gain which has a range of 0-2 with adefault value of 0.8. A temporary adjustment factor (FCT_(TMPX) -1) isthen determined according to:

    FCT.sub.TMPX =min(BALLIM, max(-BALLIM,(FCT.sub.ADJ(X-1)+ FCT.sub.ADJX)))

wherein BALLIM represents a balance limit having a range of 0-1 with a0.01 resolution and a default value of 0.07. Thus, to determine thetemporary adjustment factor, the ECM first identifies the maximum of-BALLIM and the sum of FCT_(ADJ)(X-1) and FCT_(ADJX) (whereinFCT_(ADJ)(X-1) is the previous adjustment factor for that cylinder). TheECM then compares that maximum to the value of BALLIM, and takes theminimum of those quantities as the temporary adjustment factor.

At step 64, the adjustment factors are updated, and the results areoutput to the user. In the preferred embodiment, updating the adjustmentfactors includes normalizing the calculated. adjustment factors.Normalization of the adjustment factors is accomplished utilizing anormalizing factor, determined according to:

    FCT.sub.NRMX -Π(1+FCT.sub.TMPX)

Thus, FCT_(NRMX) is obtained by taking the product of all (1+FCT_(TMPX))quantities. The fuel injector pulsewidth adjustment factor for eachcylinder can then be determined according to: ##EQU3## Once determined,at step 64, all of the adjustment factors for the cut-out cylinders(i.e. all values of FCT_(x)) are stored in memory and then multiplied bythe final injector pulsewidth:

    BALFPW-PWMULT*INCFAC.sub.x *FCT.sub.x *SPW

wherein PWMULT is an engine-specific horsepower adjustment constantstored in non-volatile memory, INCFAC_(x) is the injector fuel flowrate, and SPW is the base fuel pulse width determined by the ECM basedon operating conditions and known principles of ignition and combustion.Although not specifically shown in FIG. 2, the methodology could beperformed using multiple iterations of the steps.

It is known that certain fuel injectors, sometimes termed high fuel, orhot, injectors, generate more power than other injectors. With thebalance test of the present invention, the effects of this variation canbe minimized by compensating the fuel delivery of each fuel injector.For example, if the engine has a high output injector, when thatinjector is cut out, the associated rise in engine speed resulting fromthe balance test will be less than the rise in engine speed occurringwhen the high output injector is fueled and a nominal injector is cutout. Adjustment factors compensate for a high output injector byreducing the fuel delivered to that injector. By compensating the fuelinjectors, the present invention operates to reduce engine wear, reducethe amount of engine smoke and particulates generated, and providesmoother power delivery. It should be appreciated that the injectorspecific information described above may be retrieved and/or compared inthe user interface 34 or in the ECM 20 for engine diagnosis and trackingpurposes.

Referring now to FIG. 3, there is shown a flow chart detailing the stepsfor a fuel economy speed limit adder according to the present invention.The goal of this aspect of the present invention is to provide anincentive to the vehicle operator to behave in a way generallyconsistent with the goals of the fleet managers to maximize fueleconomy. Typically, drivers strive to increase vehicle speed. In lightof this fact, increasing the speed available to the driver as fueleconomy increases as a result of for example, minimization of idle time,selection of the optimum transmission gear, maintaining a steadythrottle, or reducing the use of engine-driven accessory loads, providesa powerful incentive for the driver to behave as desired.

The strategy to provide the speed-based incentive utilizes numerousvariables. In the preferred embodiment, calibration values for thesevariables are as follows:

    ______________________________________                                                               MINIMUM     INITIAL                                    NAME       RANGE       RESOLUTION  VALUE                                      ______________________________________                                        THRESH.sub.MPG                                                                           2-20 MPG    0.1 MPG     7 MPG                                      MAX.sub.-- MPH.sub.MPG                                                                   0-10 MPH    1 MPH       5 MPH                                      MPH.sub.-- MPG.sub.GN                                                                    0-20 MPH/MPG                                                                              0.1 MPH/MPG 5 MPH/MPG                                  MPG.sub.-- FILT.sub.CON                                                                  0-0.01      0.00002     0.00055                                    MPG.sub.-- LIM                                                                           0-10 MPG    0.1 MPG     3 MPG                                      MPG.sub.-- TYPE                                                                          Switch      0 = trip avg., 1 = filtered                            ______________________________________                                    

Fuel economy, measured in terms of miles per gallon (MPG), can be eitherthe trip average fuel economy (MPG₋₋ TYPE=0) or a filtered fuel economy(MPG₋₋ TYPE=1). In a preferred embodiment, filtered MPG (FIL_(MPG)) isutilized and is calculated at step 70 using a standard 1st order lagcalculation limited between calibration limits according to:

    FIL.sub.MPG -min(MPG.sub.-- LIM+THRESH.sub.MPG,max(THRESH.sub.MPG -MPG.sub.-- LIM, (FIL.sub.MPG.sbsb.t-1 +MPG.sub.-- FILT.sub.CON *(INST.sub.MPG -FIL.sub.MPG.sbsb.t-1))))

wherein MPG₋₋ LIM represents the maximum permissible deviation from thefleet fuel economy goal, THRESH_(MPG) represents a threshold fueleconomy, MPG₋₋ FILT_(CON) is a fuel economy filter constant, INST_(MPG)represents an instantaneous fuel economy, and FIL_(MPGt-1) representsthe previously determined filtered fuel economy. This calculation isdone frequently, such as once per second, to react in a timely manner tocurrent driver behavior.

The MPGMPH term, which represents the speed adder, is calculated toincrease allowable vehicle speed once the threshold fuel economy hasbeen obtained, although it is limited to the maximum speed calibrationvalue MAX₋₋ MPH_(MPG). More specifically, allowable vehicle speed isproportionally increased according to the amount by which the thresholdfuel economy is exceeded. In a preferred embodiment, the MPGMPH term isdetermined at step 72 according to:

    MPGMPH-min(MAX.sub.-- MPH.sub.MPG,MPH.sub.-- MPG.sub.GN *max(0,(INST.sub.MPG -THRESH.sub.MPG)))

wherein MAX₋₋ MPH_(MPG) represents the maximum amount the vehicle speedmay be increased, and MPH₋₋ MPG_(GN) is the fuel economy gain the valueof which may vary based on customer input. For the feature to functionas intended, the calculated MPG value is preferably saved acrossignition cycles, and initialized to zero in the case of the first powerup or in the case of an error. If the VSS fails, the speed adder is setto zero. At step 74, the ECM adjusts the speed maximums. Moreparticularly, the cruise maximum MPH (CCMAXS) and the road speed limitmaximum MPH (RSLMPH) are modified by the addition of MPGMPH to CCMAXSand RSLMPH when this feature is enabled.

According to another aspect of the present invention, fuel delivery tothe engine is limited at certain altitudes. The goal of this aspect ofthe present invention is to prevent damage to the turbocharger fromexcessive speed or compressor surging at certain barometric pressures(such as those typically encountered at high altitudes), preferably byreducing power via a torque limit at those barometric pressures.

In a preferred embodiment, a limit torque (HATQ) is defined accordingto: ##EQU4## wherein RPM_(MX) represents the RPM for maximum barometricpressure compensation which has a range of 0-2500 with a default valueof 1800 RPM, RPM is the engine speed, TRQ_(MN) represents the minimumtorque after compensation which has a range of 0-100 and a default of100%, RPM_(MN) represents the minimum RPM for compensation which has arange of 0-2500 and a default of 1100 RPM, PR_(TQ) represents thepressure gain for compensation which has a range of 0-2% per kPa and adefault value of 1% per kPa, and PR_(MN) represents the minimum pressurefor compensation which has a range of 0-120 and a default value of 50kPa. The calculations are performed, and the torque limit is imposed,when the conditions for torque limiting exist, such as if the barometricpressure is below that which provides a torque that is greater than orequal to the current requested torque. It should be noted that thevariables are calibrated such that RPM_(MX) >RPM_(MN).

FIG. 4 is a graphical representation of the torque reduction (i.e.percent of maximum engine output torque) as a function of altitude andengine speed. The solid lines indicate typical requested torque limit,and lines of constant power. Limited torques are shown for barometricpressures of 0 kPa, 50 kPa, 72.86 kPa, 81.12 kPa and 100 kPa. As shown,the torque varies inversely with the barometric pressure (BARO) so thatmore torque reduction (less torque) is provided at lower barometricpressures typically encountered at high altitudes. More particularly,the graph illustrates various torque reductions for a particular engineapplication, with TRQ_(MN) =57%, RPM_(MN) =1050 RPM, RPM_(MX) =2100 RPM,PR_(TQ) =0.0080, and PR_(MN) =50 kPa. Once determined, the limit torquemay be imposed as a global engine torque limit as described above.

As previously noted, the user interface, or data hub, 34 is used tostore user calibration parameters, fleet management information, andretrieve engine historical information logged as a result of diagnosticor malfunction codes. The data hub 34 preferably stores this informationin sets referred to herein as pages, although various other methods ofstorage are possible, such as ASCII files. The first page relates tovehicle information. In the preferred embodiment, the vehicleinformation page includes total vehicle distance, total fuel used, totalengine hours and engine serial number. All values are maintained fromthe first use of the engine, and can not be reset.

The electronic control module 20 can sample various sensors at regularintervals under controlled conditions, or it can sample continuously.For instance, the coolant temperature may be sampled continuously whenthe engine is expected to have reached operating temperature. Studyingthe trend data over a period of time gives an indication of thecondition of the element being measured or may give an indirectindication of the condition of other elements of the engine. Forexample, a decreasing average for coolant temperature may indicate amalfunctioning thermostat, whereas an increasing average temperature mayindicate a clogged radiator.

Accordingly, the electronic control module 20 cooperates with the datahub 34 to maintain a plurality, of trend pages. Generally, trendinformation can be reset, but the preferred practice is to allow thetrends to run continuously over the life of the engine. In this manner,a predetermined number of most recent samples, for example 100, arealways available for trend analyses. For purposes of this discussion,the values represented by the letters "aaa", "bbb", and so on, can beuser-specified to customize the trend information, and the value withinparentheses after the letters indicates the default value. Of course,the default values may be hard-coded into the system, removing thataspect of customer input. Lastly, it should be noted that all trendpages may be reset. Resetting will clear all of the trend sample pointsstored on a particular page.

The first trend page maintained relates to oil pressure. An oil pressuretrend sample is monitored during every aaa(20) engine hours. The averageoil pressure during the time interval of the sample period where the RPMexceeded bbb (1600) but was less than ccc(1800), and the oil temperatureexceeded ddd(180° F.) but was less than eee(220° F.) is taken as thesample. The starting engine hours at which time the sample period beganis also stored. Generally, the oil pressure trend is monitored for anunusual change in pressure, such as a large drop in pressure. Such adrop in pressure may be indicative of mechanical problems, a regulationproblem, fuel dilution, or a low quantity of oil.

The data hub also maintains a turbo boost pressure trend page. In thepreferred embodiment, a turbo boost pressure trend sample is determinedbased on every aaa(20) engine hours. The average turbo boost pressureduring the time interval of the sample period where the RPM was greaterthan bbb(1400) and less than ccc(1600) and the powertrain demand isgreater than or equal to ddd(96%) and less than or equal to eee(100%) istaken as the sample. The starting point from which the sample had begunis also stored in the form of engine hours. The turbo boost trendoperates to monitor the fuel and air system. Generally, an air leakmanifests itself as a reduction in the turbo boost. Similarly, a fuelrestriction (e.g. clogged fuel filter) manifests itself as a reductionin the turbo boost.

As a means of monitoring the electrical system, the data hub 34maintains a battery voltage trend page. A battery voltage trend sampleis taken every aaa(20) engine hours for a period of bbb(60) minutes. Theaverage battery voltage for all of the time in the sample period wherethe rpm was greater than ccc(1600) and less than ddd(1800) is taken asthe sample. The starting point of the sample period is also stored.Generally, an unusual increase in battery voltage may be indicative of avoltage regulator failure, whereas an unusual decrease in batteryvoltage may be indicative of a broken alternator belt.

The data hub also maintains a fuel economy trend page. A fuel economytrend takes a sample every aaa(20) engine hours and records the averagefuel economy between the last sample and the current sample. Thestarting point of the sample period is also stored.

As a means of monitoring the oil cooling system, the data hub 34maintains a maximum oil temperature trend page. A maximum oiltemperature sample is determined over every aaa(20) engine hours. Themaximum oil temperature reached between the time the last sample wastaken, and the current sample, is recorded on the page. The startingpoint of the sample period is also stored as cumulative engine operatinghours. An oil temperature measurement which indicates a rise in maximumtemperature may be indicative of engine mechanical problems.

Additionally, a coolant temperature sample is taken every aaa(20) enginehours. The maximum coolant temperature reached between the time the lastsample was taken, and the current sample, is recorded. The startingengine hours point from which the sample was taken is also stored. Acoolant temperature measurement which indicates a rise in maximumtemperature may be indicative of a plugged radiator, a malfunctioningthermostat, or cooling fan anomalies.

The data hub also maintains a maximum RPM trend page. An RPM sample istaken every aaa(20) engine hours and the maximum RPM reached between thetime the last sample was taken, and the current sample, is recorded onthe page. The starting point of the sample period is stored in the formof cumulative engine operating hours. Through the maintenance of maximumRPM trend pages, driver comparisons are possible.

As another means of making driver comparisons, the data hub alsomaintains maximum vehicle speed trend pages. A speed sample is takenevery aaa(20) engine hours. It records the maximum speed reached betweenthe time the last sample was taken and the current sample, in additionto starting point of the sample period in the form of cumulative engineoperating hours.

Additionally, the data hub 34 maintains minimum throttle position sensorvoltage trend pages. It should be appreciated that various types ofthrottle position sensors, such as a ratiometric sensor, may be used. Athrottle position voltage sample is taken every aaa(20) engine hours.The minimum throttle position voltage reached between the time the lastsample was taken, and the current sample, is recorded, in addition tothe starting point of the sample period in the form of cumulative enginehours. With this information, throttle position sensor wear can bemonitored. Generally, the output of the throttle position sensordecreases in value as the sensor wears.

In addition to the trend pages discussed in greater detail above, thedata hub 34 is capable of performing lifing of vehicle components, suchas engine components. In a preferred embodiment, up to 10 components canbe monitored independently. During the setup of the electronic controlmodule 20 information, the names of the 10 components to be monitoredcan be specifiedby an operator, i.e. oil filter, coolant, oil, and thelike. Each of the components can be monitored by one or more of thefollowing mechanisms: vehicle distance travelled, engine hours used,calendar time, total engine revolutions, total fuel burned or idle time.The lifing information is maintained on a service interval page, whichincludes the value set for the service life and the total usagecurrently incurred, for each of the monitored engine components. Thelifing information also preferably includes percent of life left, aswell as the expected replacement/service date based on vehicle usagerates. The following components, to name a few, can be selected asstandard for component lifing: oil filter, oil, air filter, fuel filter,and coolant. Each of the individual components for which the serviceinterval is being calculated may be reset, so that its accumulated useis set to zero.

The event log page provides a coarse indication of the usage of theengine. In the event log, the state of the engine will be logged for theninety-six (96) quarter hour intervals in a day. The event log will keepthis information for a predetermined number of (the most recent) days,such as five (5). The following information is preferably available:start date and time, end date and time, number of entries, and entry(indicating engine on, off, idle, and cruise) for the 480 quarter hourentries. If the ECM clock is not properly set, or the power has beenremoved, this page may give inappropriate results.

In addition to the features described above, the electronic controlmodule 20 also performs throttle control logic. More specifically, theelectronic control module 20 determines a throttle position offset so asto ensure that when the throttle is fully released, the throttleposition sensor (TPS) value is zero, and to ensure that the value isforced to zero in error conditions as a safety precaution. An additionalmechanism, if configured, operates to prevent the engine from beingaccelerated when a vehicle door is open.

In determining the throttle position offset, the electronic controlmodule 20 utilizes an impulse filtered offset, a smoothed offset, and acomputed offset. Generally, the impulse filtered offset is obtained byselecting the middle or median value of a group (such as three) ofsamples. Thus, the effect is to drop the highest and lowest samples of agroup of samples. The smoothed offset is obtained utilizing a firstorder lag filter. The computed offset is obtained as described below.

With reference now to FIG. 5, at the start of an ignition cycle, theimpulse filtered offset, the smoothed offset, and the computed offsetare initialized to the maximum physically possible raw value (e.g.1023). If the A/D converter device associated with the TPS is in aconversion fail condition, or if a digital input is configured as a dualdrive EFPA switch and the debounced state of that input changesindicating a change in the active TPS (step 80), then at step 82 theimpulse filtered offset, the smoothed offset, and the computed offsetare held at the maximum physically possible raw value.

As shown in FIG. 5, if a sensor fail low or sensor fail high fault isdetected, or if one of the digital inputs to the ECM 20 is configured tobe a door switch, and the debounced state of that input represents a lowexternal input indicating an open vehicle door (step 84), the impulsefiltered offset, the smoothed offset, and the computer offset are heldat the maximum physically possible raw value at step 86.

Otherwise, at each conversion, the raw value of the TPS output is passedthrough the impulse noise filter at step 88, which, as described above,will keep the most recent three raw values and pass the arithmeticmiddle value (median). The result, which is the impulse filtered offset(IFO), is then filtered with a first order lag filter to obtain thesmoothed offset as follows.

With continuing reference to FIG. 5, if the impulse filtered offset isgreater than the previously determined smoothed offset (step 90), theequation (step 92) is:

    SO.sub.T -SO.sub.T-1 +TPINFC(IFO-SO.sub.T-)

wherein SO_(T) represents the new smoothed offset, SO_(T-1) representsthe old smoothed offset, TPINFC represents the throttle position sensoroffset increasing filter constant which has a range of 0-1, and adefault value of 0.01.

Otherwise, at step 94 the smoothed offset is determined as follows:

    SO.sub.T -SO.sub.T-1 +TPDEFC(IFO-SO.sub.T-1)

wherein TPDEFC represents the throttle position sensor offset decreasingfilter constant which has a range of 0-1, and a default value of 0.2.

If the ECM 20 receives as a digital input a throttle idle switch outputand the debounced state of that input represents a low external input tothe ECM indicating a closed throttle idle validation switch (step 96),then the computed offset is obtained at step 98 as follows:

    CO.sub.T -max(CO.sub.T-1,max(SO.sub.T +TPOHIS,TPOMIN))

wherein CO_(T) represents the new computed offset, CO_(T-1) representsthe old computed offset, SO_(T) represents the smoothed offset, TPOHISrepresents the throttle position sensor offset hysteresis which has arange of 0-250, and TPOMIN represents the throttle position sensorminimum offset which has a range of 0-250. Thus, the ECM 20 firstcompares the sum of the current smoothed offset and the TPS offsethysteresis and the TPS minimum offset and takes the maximum of the two.The ECM then compares that quantity with the previous computed throttleoffset and takes the maximum of those two as the new throttle offset.

Otherwise, the computed offset is determined at step 100 according to:

    CO.sub.T -max(min(CO.sub.T-1,SO.sub.T +TPOHIS),TPOMIN)

Thus, the ECM first compares the previous computed offset to the sum ofthe current smoothed offset and the TPS offset hysteresis and takes theminimum. Next, the ECM 20 compares that quantity to the TPS minimumoffset and takes the maximum of that comparison.

In addition to the features described above, the present inventionincludes a gear ratio torque limit embodied in a final torquedetermination by the electronic control module 20. The gear ratio torquelimit strategy will first be provided, followed by an explanation of thevariables, terms and the like used therein. It should be appreciatedthat although the present discussion focuses on a low gears torquelimit, the strategy is equally applicable to other gear ratios withappropriate modifications.

With reference now to FIG. 6, generally, the low gears torque limitstrategy limits engine torque based on engine speed (ES) and vehiclespeed (VS) in an effort to protect the transmission from damage. Asshown, the engine and vehicle speeds are measured at step 110. Moreparticularly, at step 112, a virtual gear ratio (VGR) is determined. VGRis defined as the ratio of engine speed and vehicle speed (VGR=ES/VS).At step 114, VGR is compared to a predetermined value, such as a lowgear torque limit threshold (trlrat). Based on that comparison, enginetorque may be limited. It should be appreciated that there could bepredetermined values associated with a variety of gear ratios--ratherthan a single threshold.

With continuing reference to FIG. 6, in the preferred embodiment, atstep 116, the ECM 20 determines if the VGR has not been below thethreshold plus/minus some hysteresis (trlhys) since it was last abovetrlrat. Generally, if VGR is decreasing, VGR is compared to the quantity(trlrat-trlhys), whereas VGR is compared to the quantity (trlrat+trlhys)if VGR is increasing. The use of hysteresis has known benefits. Based onthe comparison at step 116, engine torque is limited to the value of thelow gear torque limit (trllim) at step 118, which is calibratable. Theresult is that when the transmission is in a low gear (i.e. high enginespeed relative to vehicle speed), the engine torque is limited. In thismanner, a lighter duty transmission, with its attendant cost savings,can be utilized.

In the preferred embodiment, if the engine is being shutdown, due forexample to the existence of a stop engine condition, final torque is setto zero. The determination of final torque (FTQ) varies based onnumerous considerations described below. If the electronic controlmodule is a master controller (rather than a slave controller), and aslave-to-master message has been read from a communications link (suchas an SAE J1939 link) during the current ignition cycle, then finaltorque (FTQ) is determined according to:

    FTQ-min(RDTQ.sub.CTL,RDTQ.sub.MSS,SCTQ)

wherein RDTQ_(CTL) is the rampdown torque determined by the ECM,RDTQ_(MSS) is the rampdown torque from the most recent message receivedover the link, and SCTQ is the smoke control torque.

Otherwise, if the vehicle speed sensor is enabled, low gear torque limitis enabled, external engine synchronization is not set, and a vehiclespeed sensor failure fault is detected, FTQ is:

    FTQ-min(RDTQ,trllim,SCTQ)

wherein RDTQ is rampdown torque, trllim is the low gear torque limitvalue having a range of 0-100% and a coarse resolution of 0.5%, and SCTQis smoke control torque. Thus, the minimum of the three quantities isutilized as final torque.

Otherwise, if the vehicle speed sensor is enabled, low gear torque limitis enabled, external engine synchronization is not set, and the vehiclespeed is less than the cruise control minimum speed to set the cruise,FTQ is determined according to:

    FTQ=min(RDTQ,trllim,SCTQ)

Otherwise, if the vehicle speed sensor is enabled, low gear torque limitis enabled, external engine synchronization is not set, and VGR has notbeen below trlrat-trlhys since it was last above trlrat, then FTQ isdetermined according to:

    FTQ-min(RDTQ,trllim,SCTQ)

wherein trlrat is the low gear torque limit VGR threshold having a rangeof 0-300 and a default of 0.01 RPM/MPH, and trlhys is the low geartorque limit VGR hysteresis having a range of 0-300 and a default of0.01 RPM/MPH. Otherwise, FTQ is determined according to:

    FTQ-min(RDTQ,SCTQ)

Rampdown torque (RDTQ) is determined based on a stop engine limittorque, an overtemperature limit torque, and a marine limit torque,according to:

    RDTQ-(min SETQ, OTTQ, MLTQ)

wherein SETQ is the stop engine limit torque, OTTQ is theovertemperature limit torque, and MLTQ is the marine limit torque.

Generally, stop engine torque limiting occurs when a stop enginecondition exists, such as low oil pressure. In the preferred embodiment,SETQ is determined according to:

    SETQ-max(setmin, ST*STPTST)

wherein setmin is the stop engine minimum torque, ST is the savedtorque--the value of final torque FTQ at the time the first stop enginecondition occurred, and STPTST is the stop engine throttle scaling time,which has a range of 0-100 and a coarse resolution of 0.5%.

Thus, to determine the stop engine torque limit, the ECM 20 compares thevalues of the stop engine minimum torque, and the quantity of the savedtorque and the stop engine scaling time, and sets SETQ as the maximum ofthe compared values. If no stop engine condition exists, SETQ is 100% ofthe available engine torque or the final torque (FTQ).

As shown above, the rampdown torque is also based on an overtemperaturelimit torque. Generally, overtemperature torque limiting occurs when atleast one overtemperature condition exists. Typical overtemperatureconditions include, but are not necessarily limited to, excessivecylinder head temperatures, coolant temperatures, oil temperatures andtransmission temperatures. If overtemperature protection is enabled, inthe preferred embodiment, OTTQ is determined according to:

    OTTQ-max(setmin, ST*DIWTST)

wherein ST is saved torque--the value of filtered torque (STQ) at thetime the overtemperature condition began, and DIWTST is the warningthrottle scaling table value, the value of which varies based on themagnitude of the overtemperature. In one embodiment, DIWTST assumes avalue between 0 and 100.

Marine limit torque is also utilized in determining the rampdown torque.Preferably, the marine limit torque is determined according to: ##EQU5##wherein tqtret is the maximum torque reduction end time, TMR_(TL) is thetorque limiting timer the value of which represents the time since thetorque limit was exceeded, tqtrst is the maximum torque reduction starttime variable, MAXTQ is the maximum torque of the engine, DTQLMT is thedigital torque limiting table value which is based on the engine speed(ENGRPM), TQADV is the torque adjustment table value which is based onthe engine rating and the engine speed, and ARN is the active ratingnumber. If the TMR_(TL) is less than the value of the maximum torquereduction start time variable (tqtrst), then the marine limit torque is100% of the final torque.

As shown above, the final torque FTQ is determined with a comparison toSCTQ, the start and smoke control torque. If the engine is in the startmode of operation, SCTQ is determined according to:

    SCTQ-RTQI+SMDTQ

wherein RTQI represents the driver requested torque and SMDTQ is thestarting torque, the value of which varies based on oil temperature andengine speed. In the preferred embodiment, the engine is in the startmode of operation if the engine speed is within a predetermined speedwindow. More specifically, the engine is in a start mode if the enginespeed has not been above the quantity smiddl+ISPD (wherein smiddlrepresents a predetermined delta speed above the engine idle speed whichmust be exceeded to exit the start mode of engine operation, and ISPDrepresents the idle speed) since the engine speed was last below smback(which represents the engine speed to reenter the start mode).

Otherwise, if governor torque (GOTQ) exceeds the smoke limit torque(SLTQ), the engine is in a smoke control mode of operation, andSCTQ=SLTQ, which is determined utilizing the smoke limit torque (SCTORQ)function, the value of which varies based on engine rating (ARN), SCBST(smoke control boost pressure), and engine speed (ENGRPM):

    SLTQ-SCTORQ(ARN,SCBST,ENGRPM)

Otherwise, SCTQ=requested torque.

In a preferred embodiment, the ECM 20 also implements improved fancontrol logic. A detailed discussion of fan control is provided in U.S.patent application Ser. No. 08/113,424, filed on Aug. 27, 1993, titled"Method for Engine Control" and assigned to the assignee of the presentapplication, the specification of which is hereby expressly incorporatedby reference in its entirety. More specifically, this feature adds thecapability of providing fan operation based on the operational state ofthe transmission retarder, the coolant temperature, manifold airtemperature, or the air inlet temperature. In a preferred embodiment,the system and method of the present invention impose a minimum engineoutput torque requirement prior to operating the cooling fan due to ahigh air temperature indication.

According to the present invention, the ECM 20 includes a digital inputfunction providing for fan operation when the transmission retarder hasbeen activated for a period of time and the coolant temperature hasexceeded a particular temperature. In this way, the ECM 20 automaticallyenergizes the fan so as to assist in the cooling of the engine toanticipate heat which will be absorbed by the coolant due to theoperation of the transmission retarder. Prior art systems often relyprimarily on the coolant temperature to activate the cooling fan. Byanticipated the rise in coolant temperature, the present inventionprovides improved control of the engine operating temperature which hasa number of attendant advantages as discussed below.

Still further, in a preferred embodiment, the ECM 20 includes an airtemperature torque limit. If any part of the fan system were to fail, orif a vehicle operator forgets to remove their radiator winter coverprior to driving in warm ambient temperatures, the compressed air fromthe turbocharger will not be cooled sufficiently prior to delivery tothe cylinders. As a result, combustion temperatures rise, as doesfriction, wearing the cylinder walls and piston prematurely. Althoughother configurations are possible, this feature is preferably configuredsuch that torque is reduced if the air inlet temperature is greater thanATNTMP and engine speed is greater than ATNRPM to a maximum reduction ofATQMIN at ATXRPM. Setting ATNRPM to an RPM greater than the maximumtransmission override RPM will disable this feature.

More specifically, whenever the air (compressed or uncompressed) inlettemperature rises above ATNTMP and the engine speed exceeds ATNRPM, anabsolute torque limit will be computed. The torque of the engine willnot exceed this limit. The air temperature torque limit is preferablyconfigured to approximate constant horsepower for a given temperaturewhich provides predictable engine behavior and appropriate engineprotection. If the air temperature sensor fails high, the airtemperature will ramp down or up to the default air temperature. Theinput filter constant AIIFC determines the ramp rate which preferablyspans several seconds so that abrupt torque limit jumps do not occur.

The air temperature torque limit is determined according to: ##EQU6##wherein AIT is the air temperature (air inlet or manifold airtemperature), ATNRPM is the engine speed at or below which ATTQ is 100%for any air temperature, ATQMAX is the absolute torque limit when theengine rpm is greater than or equal to ATXRPM and the air temperature isless than or equal to ATNRMP, ATQMIN is the minimum absolute torquelimit (ATTQ equals this value when speed is greater than or equal toATXRPM and the air inlet temperature is greater than or equal toATXTMP), ATTQ is an absolute torque limit and is a factor in determiningthe rampdown torque (the final torque (FTQ) can not exceed this limit),ATXRPM is the engine speed at which ATTQ=ATQMAX when airtemperature≦ATNTMP and engine speed is at or above which maximum torquereduction occurs, specifically ATTQ=ATQMIN when air temperature≧ATXTMP,and ENGRPM is the engine RPM averaged over 90° for 8- and 16-cylinderengines, 180° degrees for 4-cylinder engines, and 120° for others.

Referring now to FIG. 7, a flow chart illustrating an idle shutdownfeature between ambient temperature limits according to the presentinvention is shown. Similar to the previously described features, thisfeature is implemented by ECM 20. This feature provides for selectiveengine shutdown after a predetermined (or possibly adaptive) time periodduring which predetermined conditions are met. Since idling at low idlespeeds produces sulfuric acid which deteriorates oil quality and mayattack bearings, rings, valve stems, and other engine surfaces, thisfeature limits the period of time which an operator can allow the engineto idle. Furthermore, this feature helps to improve the overall fueleconomy of the vehicle while reducing noise and emissions.

Block 130 of FIG. 7 performs various initialization functions such asdetermining whether an ambient air temperature sensor has been installedand is working properly, whether the parking brake is set, and theengine is idling, i.e. the accelerator pedal is not depressed and thehigh idle function is not active. The high idle function is provided tofacilitate a vehicle warm-up cycle while avoiding the disadvantagesassociated with a low idle as described above. If an ambient airtemperature sensor is not installed or is installed but not configured,the system will estimate the ambient air temperature as illustrated anddescribed in detail with reference to FIG. 8. Similarly, if an ambientair temperature sensor is installed and a short circuit to ground isdetected, the ambient air temperature will be estimated as describedbelow. If an ambient air temperature sensor is installed and a shortcircuit to the vehicle battery is detected, the ambient air temperatureis set to a value of 70° F., a fault is recorded, and the check enginelight is illuminated. This prevents the idle shutdown from beingoverridden as long as 70° F. falls within the range established by thelower calibration limit (LL) and upper calibration limit (UL) asexplained below. The idle shutdown feature can be disabled by settingthe upper calibration limit (UL) to a value less than the lowercalibration limit (LL).

Block 132 of FIG. 7 determines the ambient air temperature. This may beaccomplished directly by monitoring the appropriate sensor, or may be anestimate as described in detail below. Block 134 monitors the idle timerto allow idling for a predetermined period of time, preferably five (5)minutes, before warning the operator of an impending engine shutdown atblock 136. This warning may be any appropriate signal such as a buzzer,light, or the like. In a preferred embodiment, the check-engine lightflashes for about ninety (90) seconds prior to engine shutdown.

During the warning period, the operator may override the shutdown, asindicated by block 138, provided operator override is enabled asdetermined by a calibration variable which may be set via user interface34. Preferably, an override request is indicated by momentarilydepressing the accelerator pedal. If operator override is not allowed asdetermined by the calibration variable, or the override is not requestedby depressing the accelerator pedal (or a similar indication), theengine will be shutdown as indicated by block 150. If an operatoroverride is enabled and detected by block 138, then control is passed toblock 140.

Since it is desirable to allow extended idle periods under certainambient temperature conditions, such as those which may justifyoperation of the vehicle heating or cooling system, block 140 determineswhether the current ambient air temperature (AATMP) is within the rangedetermined by the values of LL and UL. In a preferred embodiment, LL hasa value corresponding to about 40° F. and UL has a value correspondingto about 80° F. If the value of AATMP is within the limits determined bythe values of LL and UL, or the value of AATMP exceeds a high limit (EL)value, as determined by block 140, control passes to block 144.Otherwise, block 142 resets a delay timer which results in an unlimitedidling time while the appropriate operating conditions are satisfied.The value of HL, which is preferably about 176° F., is utilized todetect an attempt to defeat the sensor by placing the sensor on arelatively hot surface. Thus, if the ambient air temperature determinedby a temperature sensor exceeds this value, then the operator overrideis disabled resulting in engine shutdown as indicated by block 150.

If the ambient air temperature is being estimated as described above andillustrated by block 144, the delay timer is set (if it is not alreadyrunning) at block 146. Preferably, the delay timer is set to abouttwenty (20) minutes. Block 148 then determines whether the delay timerhas expired. The delay timer provides a sufficient settling time forvarious parameters used for the ambient air estimation function asdescribed below. Once the timer initiated at block 142 or 146 expires,the engine will be shut down as indicated at block 150, i.e. only oneoverride is allowed per ignition cycle. Similarly, if an ambient airtemperature sensor is installed and functioning properly, settling timeis not required and the engine is shutdown after the predeterminedidling period elapses.

Referring now to FIG. 8, a graphical representation of ambient airtemperature estimation is shown. In a preferred embodiment, ambient airtemperature is estimated using information commonly available fromstandard engine sensors according to: ##EQU7## where T_(air) representsair temperature 166 which is the value of the manifold air temperatureif a manifold air temperature sensor has been configured, as representedby block 160. Otherwise, air temperature 166 is equal to the air inlettemperature (AIT) 162, described above, as represented by element 164.Block 170 represents the engine oil temperature (T_(oil)) as determinedby an associated sensor. Block 172 represents engine RPM which is scaledby the value of K_(E) (6 in a preferred embodiment), as represented byblock 174. Block 180 represents the ambient air offset factor (T_(aoff))and block 188 represents a cooling fan offset (Fan_(off)). The "max"function, represented by block 182 selects the greater of the valueswithin braces and delineated by a comma, i.e. the "max" function returnsa value of zero for otherwise negative values. The ambient airtemperature (T_(AATP)), represented by block 196, is equal to itsprevious value added to a scaled difference value as determined byscaling factor K_(F), represented by block 194. Engine speed is includedin the estimate since, as engine speed increases, the air temperaturehas less time to be heated by the engine. Similarly, the cooling fanoffset is included when the cooling fan is on since this also reducesthe air temperature.

FIG. 9 provides a graphical representation of absolute torque versusengine speed which illustrates the relationship between engine speed,air temperature and torque limit in a vehicle system such as in apreferred embodiment of the present invention.

It is understood, of course, that while the forms of the inventionherein shown and described constitute the preferred embodiments of theinvention, they are not intended to illustrate all possible formsthereof. It will also be understood that the words used are descriptiverather than limiting, and that various changes may be made withoutdeparting from the spirit and scope of the invention disclosed.

What is claimed is:
 1. A method for limiting idling time of an internalcombustion engine in a vehicle having an electronic control module forcontrolling the internal combustion engine, the methodcomprising:determining a value representative of ambient airtemperature; and automatically disabling continued operation of theinternal combustion engine when the value representative of ambient airtemperature is within a range determined by selectable upper and lowerambient air temperature limit values.
 2. The method of claim 1 whereinthe step of determining comprises estimating the ambient airtemperature.
 3. The method of claim 1 wherein the step of determiningcomprises estimating the ambient air temperature based on at least onemember of the group consisting of engine oil temperature, engine speed,and air inlet temperature or manifold air temperature.
 4. The method ofclaim 1 wherein the step of determining comprises estimating the ambientair temperature according to: ##EQU8## where T_(AATP) representsestimated ambient air temperature, temp is a temporary storage variable,T_(air) represents one of manifold air temperature and air inlettemperature, T_(oil) represents engine oil temperature, RPM representsengine speed, K_(E) is a scaling factor, T_(aoff) is an ambient airtemperature offset, Fan_(off) is a cooling fan offset, and K_(F) is afilter constant.
 5. The method of claim 1 wherein the step ofautomatically disabling continued operation of the internal combustionengine is performed only when the vehicle is stationary.
 6. The methodof claim 5 wherein a stationary vehicle is indicated only when a vehicleparking brake is set.
 7. The method of claim 1 furthercomprising:providing a warning indicative of impending disablement ofthe internal combustion engine for a predetermined period of time priorto the step of automatically disabling continued operation of theinternal combustion engine.
 8. The method of claim 7 furthercomprising:detecting an operator override while providing the warning soas to delay the step of automatically disabling continued operation ofthe internal combustion engine for a second period of time.
 9. Themethod of claim 8 further comprising:detecting an attempt to defeat anambient temperature sensor when the temperature sensor indicates anambient temperature in excess of a high ambient temperature limit valuefor a third period of time; and disabling the operator override whilethe attempt to defeat the ambient temperature sensor is detected so asto enable automatically disabling continued operation of the internalcombustion engine.
 10. A method for limiting idling time of an internalcombustion engine of a vehicle having an electronic control module forcontrolling the engine and a parking brake for maintaining the vehiclein a stationary condition, the method comprising:determining that thevehicle is stationary as indicated by the parking brake being engaged;determining a value representative of ambient air temperature; andautomatically shutting down the internal combustion engine when thevalue representative of ambient air temperature is within a rangedetermined by selectable upper and lower ambient air temperature limitvalues for a first time period.
 11. The method of claim 10 wherein thevehicle further includes an ambient air temperature sensor incommunication with the electronic control module and wherein the step ofdetermining a value representative of ambient air temperature comprisesmonitoring a signal produced by the ambient air temperature sensor. 12.The method of claim 10 wherein the step of determining a value comprisescomputing an estimate of ambient air temperature.
 13. The method ofclaim 10 wherein the step of determining a value comprises computing anestimate for ambient air temperature based on at least one of themembers of the group consisting of manifold air temperature, air inlettemperature, and engine oil temperature.
 14. The method of claim 10wherein the upper and lower ambient air temperature limits have valuescorresponding to about 80° F. and 40° F., respectively.
 15. A system forlimiting idling time of an electronically controlled internal combustionengine in a vehicle, the system comprising:a memory for storing apredetermined set of instructions and calibration values; a processor incommunication with the memory, the processor being operative todetermine a value representative of ambient air temperature, and toautomatically disable continued operation of the internal combustionengine when the value representative of ambient air temperature iswithin a range determined by selectable upper and lower ambient airtemperature limit values stored in the memory.
 16. The system of claim15 wherein the processor is operative to estimate the ambient airtemperature.
 17. The system of claim 15 wherein the processor isoperative to estimate the ambient air temperature based on at least onemember of the group consisting of engine oil temperature, engine speed,and air inlet temperature or manifold air temperature.
 18. The system ofclaim 15 wherein the processor is operative to estimate the ambient airtemperature according to: ##EQU9## where T_(AATP) represents estimatedambient air temperature, temp is a temporary variable stored in thememory, T_(air) represents one of manifold air temperature and air inlettemperature, T_(oil) represents engine oil temperature, RPM representsengine speed, K_(E) is a scaling factor, T_(aoff) is an ambient airtemperature offset, Fan_(off) is a cooling fan offset, and K_(F) is afilter constant.
 19. The system of claim 15 wherein the processor isfurther operative to provide a warning for a predetermined period oftime prior to the step of automatically disabling continued operation ofthe internal combustion engine, the warning being indicative ofimpending disablement of the internal combustion engine.
 20. A methodfor controlling an internal combustion engine in a vehicle including atransmission connected to the engine and having a transmission retarder,the vehicle also including a radiator containing engine coolant forcooling the engine during operation and a cooling fan for increasingcooling rate of the engine coolant and engine components, the methodcomprising:operating the cooling fan based on an anticipated enginecoolant temperature increase.
 21. The method of claim 20 wherein thestep of operating the cooling fan comprises:operating the cooling fanbased on the engine coolant obtaining a predetermined minimumtemperature and an operational state of the transmission retarder. 22.The method of claim 21 wherein the step of operating the cooling fanincludes operating the cooling fan when the engine coolant exceeds apredetermined minimum temperature and the transmission retarder isengaged.
 23. The method of claim 20 wherein the step of operating thecooling fan comprises:determining requested engine output torque basedon current engine operating conditions; and anticipating a coolanttemperature increase based on the requested engine output torque andcurrent air temperature.
 24. The method of claim 20 wherein the step ofoperating the cooling fan comprises:determining requested engine outputtorque based on current engine operating conditions; anticipating acoolant temperature increase based on the requested engine output torqueand current air temperature, wherein the cooling fan is operated onlywhen the requested engine output torque exceeds a predetermined minimumtorque value and the current air temperature exceeds a predeterminedminimum coolant temperature.